package com.itheima.api.exception.demo03;

/**
 * 异常的处理使用try...catch语句
 *
 * try {
 * 	可能出现异常的代码;
 * } catch(异常类名 变量名) {
 * 	异常的处理代码;
 * }
 *
 */
public class ExceptionDemo01 {

    public static void main(String[] args) {

        // 定义两个int类型的变量
        int a = 23 ;
        int b = 0 ;

        try {

            // 在控制台输出a/b
            System.out.println(a / b);          // 这一行代码出现了问题， 因为除数为0了



        }catch (ArithmeticException e) {


            /**
             * catch中尽量不要写空语句；为什么? 因为如果说什么代码都不写，对使用者来讲，并不知道程序到底有没有出现问题
             * 你这样做反而是把问题进行隐藏了； 所以在catch语句中需要写代码，写什么代码呢？一般情况下我们所写的代码就是
             * 把这个异常的错误信息打印到控制台，怎么获取错误信息，将其打印到控制台呢？一会讲。现在我们直接写一个输出语句
             * 就可以了，告诉我们的使用者程序处出现问题了。
             */

            System.out.println("程序出现问题了......");

        }

        /**
         * 1. 程序的开始是从try语句开始
         * 2. 此时被try所包裹的代码出现异常，此时jvm会针对这个异常去生成一个异常对象，生成这个异常对象以后，然后去寻找对象的cath语句中
         *    所对应的异常；如果发现某一个catch语句中所定义的异常类型，和我这个异常对象的类型是相同的，那么此时会执行catch语句的语句体
         * 3. 执行完成catch语句体以后，那么程序并不会结束，而是继续向下运行
         */

        // 输出
        System.out.println("程序结束了....................");

    }

}
